package Logica;

import java.util.Date;
import java.util.Set;
import java.util.HashSet;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Calendar;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

@Entity
public class Empleado extends Persona implements Serializable {

    @Basic
    private int nroLegajo;
    @OneToOne
    private CategoriaEmp unaCategoriaEmp;
    @OneToMany
    private Set<Turno> turnos;
    @OneToMany
    private Set<Especialidad> especialidades;
    @OneToOne
    private Operacion unaOperacion;
    @OneToMany
    private List<Vehiculo> vehiculos;
    @OneToOne
    private PedidoRepuesto unPedido;
    @OneToOne
    private Taller unTaller;

    public Empleado() {
    }

    public Empleado(int nroLegajo, CategoriaEmp unaCategoriaEmp, String nombre, String apellido, Calendar fechaNacimiento,
            double nroDoc, String domicilio, long telefono, Operacion unaOperacion, PedidoRepuesto unPedido, Taller unTaller) {
        super(nombre, apellido, fechaNacimiento, nroDoc, domicilio, telefono);
        this.nroLegajo = nroLegajo;
        this.unaCategoriaEmp = unaCategoriaEmp;
        this.turnos = new HashSet();
        this.especialidades = new HashSet();
        this.unaOperacion = unaOperacion;
        this.vehiculos = new LinkedList();
        this.unPedido = unPedido;
        this.unTaller = unTaller;
    }
    public Empleado(int nroLegajo, CategoriaEmp unaCategoriaEmp, String nombre, String apellido, Calendar fechaNacimiento,
            double nroDoc, String domicilio, long telefono) {
        super(nombre, apellido, fechaNacimiento, nroDoc, domicilio, telefono);
        this.nroLegajo = nroLegajo;
        this.unaCategoriaEmp = unaCategoriaEmp;
        this.turnos = new HashSet();
        this.especialidades = new HashSet();
        this.unaOperacion = unaOperacion;
        this.vehiculos = new LinkedList();
        this.unPedido = unPedido;
        this.unTaller = unTaller;
    }

    public List<Vehiculo> getVehiculos() {
        return vehiculos;
    }

    public void setVehiculos(List<Vehiculo> vehiculos) {
        this.vehiculos = vehiculos;
    }

    public Set<Turno> getTurnos() {
        return turnos;
    }

    

    public Set<Especialidad> getEspecialidades() {
        return especialidades;
    }

    

    public Taller getUnTaller() {
        return unTaller;
    }

    public void setUnTaller(Taller unTaller) {
        this.unTaller = unTaller;
    }

    public int getNroLegajo() {
        return nroLegajo;
    }

    public void setNroLegajo(int nroLegajo) {
        this.nroLegajo = nroLegajo;
    }

    public CategoriaEmp getUnaCategoriaEmp() {
        return unaCategoriaEmp;
    }

    public void setUnaCategoriaEmp(CategoriaEmp unaCategoriaEmp) {
        this.unaCategoriaEmp = unaCategoriaEmp;
    }

   

    public void setTurnos(Set turnos) {
        this.turnos = turnos;
    }

    

    public void setEspecialidades(Set especialidades) {
        this.especialidades = especialidades;
    }

    public Operacion getUnaOperacion() {
        return unaOperacion;
    }

    public void setUnaOperacion(Operacion unaOperacion) {
        this.unaOperacion = unaOperacion;
    }

    public PedidoRepuesto getUnPedido() {
        return unPedido;
    }

    public void setUnPedido(PedidoRepuesto unPedido) {
        this.unPedido = unPedido;
    }
    public String toString(){
        return this.getNombre()+" "+this.getApellido();
    }
}
